package com.example.blog.controller;


import cn.hutool.core.text.split.SplitIter;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.blog.entity.Article;
import com.example.blog.entity.Collect;
import com.example.blog.service.impl.CollectServiceImpl;
import com.yc.common.vo.Result;
import org.springframework.aop.scope.ScopedProxyUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.time.LocalDateTime;

/**
 * (Collect)表控制层
 *
 * @author makejava
 * @since 2023-07-09 10:00:36
 */
@RestController
@RequestMapping("/blog/collect")
public class CollectController {

    @Resource
    private CollectServiceImpl collectService;


    /**
     * 根据文章ID和用户ID查询收藏状态
     *
     * @param articleId 文章ID
     * @param id        用户ID
     * @return 包含操作结果的Result对象。若存在收藏记录，则返回成功消息；否则返回失败消息。
     */
    @RequestMapping("selectCobyId")
    public Result selectCobyId(int articleId, int id) {
        if (collectService.selectCobyId(articleId, id) != null) {
            return Result.success("文章已收藏");
        } else {
            return Result.failure("文章未收藏");
        }
    }

    /**
     * 设置收藏状态
     *
     * @param articleId 文章ID
     * @param id        用户ID
     * @return 包含操作结果的Result对象。若存在收藏记录，则取消收藏并返回成功消息；若不存在收藏记录，则添加收藏并返回成功消息；否则返回失败消息。
     */
    @RequestMapping("save")
    public Result setCollect(int articleId, int id) {
        Collect selected = collectService.selectCobyId(articleId, id);
        if (selected != null) {
            System.out.println("找到该文章收藏记录");
            collectService.removeById(selected.getId());
            return Result.success("取消收藏成功！");
        }
        if (selected == null) {
            System.out.println("没有找到该文章收藏记录");
            collectService.insert(articleId,id);
            return Result.success("收藏成功！");
        }
        return Result.failure("收藏收藏有问题!");
    }
}

